package com.bestcem.xm.user.util.converter;

import com.bestcem.xm.user.controller.vo.user.UserSmtpVO;
import com.bestcem.xm.user.enums.BooleanStatusEnum;
import com.bestcem.xm.user.service.dto.user.UserSmtpDTO;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * 邮箱配置转换类
 *
 * @author qiongyu.cui <qiongyu.cui@idiaoyan.com>
 * @version v1.0
 * @date 2022/5/29 13:45
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class UserSmtpConverter {

    public static List<UserSmtpVO> userSmtpDtosToVos(List<UserSmtpDTO> userSmtpDTOList) {
        List<UserSmtpVO> result = new ArrayList<>();
        if (CollectionUtils.isEmpty(userSmtpDTOList)) {
            return result;
        }

        for (UserSmtpDTO userSmtpDTO : userSmtpDTOList) {
            UserSmtpVO vo = new UserSmtpVO();
            vo.setSmtpId(userSmtpDTO.getSmtpId());
            vo.setAccount(userSmtpDTO.getAccount());
            vo.setPassword(userSmtpDTO.getPassword());
            vo.setHost(userSmtpDTO.getHost());
            vo.setPort(userSmtpDTO.getPort());
            vo.setSslFlag(BooleanStatusEnum.toBoolean(userSmtpDTO.getSslFlag()));
            vo.setDescription(userSmtpDTO.getDescription());
            vo.setSenderName(userSmtpDTO.getSenderName());
            vo.setValidateStatus(userSmtpDTO.getValidateStatus());
            vo.setDeliverFlag(BooleanStatusEnum.toBoolean(userSmtpDTO.getDeliverFlag()));
            vo.setNoticeFlag(BooleanStatusEnum.toBoolean(userSmtpDTO.getNoticeFlag()));
            vo.setSystemFlag(BooleanStatusEnum.toBoolean(userSmtpDTO.getSystemFlag()));
            vo.setCreateTime(userSmtpDTO.getCreateTime());
            vo.setUpdateTime(userSmtpDTO.getUpdateTime());
            vo.setOrgId(userSmtpDTO.getOrgId());
            vo.setCreatorId(userSmtpDTO.getCreatorId());
            vo.setOperatorId(userSmtpDTO.getOperatorId());
            result.add(vo);
        }

        return result;
    }

}
